﻿// -- MVC4WPF
// -- Copyright © 2009 Information Control Corporation
// -- Revision History:
// -- Version 0.9.0.0 First codeplex release  - Stephen Giffin

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MVC4WPF.Automation.Dialog;
using MVC4WPF.Automation.Data;

namespace MVC4WPF.Automation.VisualStudio.Dialog
{
    /// <summary>
    /// Stores all the data that is used in a create view dialog
    /// </summary>
    public class ViewDialogPropertyBag : DialogBasePropertyBag
    {
        #region Property - ViewContracts

        /// <summary>
        ///Constant that holds the name of the property 'ViewContracts'
        /// </summary>
        public const string PropertyNameViewContracts = "ViewContracts";

        /// <summary>
        ///Local variable for property ViewContracts
        /// </summary>
        private List<ContractType> _viewContracts;

        /// <summary>
        /// List of view contracts avaliable for this view.
        /// </summary>
        /// <remarks>
        /// This property supports INotifyPropertyChanged and INotifyPropertyChanging
        /// </remarks>
        public List<ContractType> ViewContracts
        {
            get
            {
                return _viewContracts;
            }

            set
            {
                OnPropertyChanging(PropertyNameViewContracts);

                _viewContracts = value;

                OnPropertyChanged(PropertyNameViewContracts);
            }
        }

        #endregion Property - ViewContracts

        #region Property - SelectedContract

        /// <summary>
        ///Constant that holds the name of the property 'SelectedContract'
        /// </summary>
        public const string PropertyNameSelectedContract = "SelectedContract";

        /// <summary>
        ///Local variable for property SelectedContract
        /// </summary>
        private ContractType _selectedContract;

        /// <summary>
        /// The contract that has been selected for the view
        /// </summary>
        /// <remarks>
        /// This property supports INotifyPropertyChanged and INotifyPropertyChanging
        /// </remarks>
        public ContractType SelectedContract
        {
            get
            {
                return _selectedContract;
            }

            set
            {
                OnPropertyChanging(PropertyNameSelectedContract);

                _selectedContract = value;

                OnPropertyChanged(PropertyNameSelectedContract);
            }
        }

        #endregion Property - SelectedContract
    }
}
